package com.infore.dataAudit.service.audit;

import java.util.List;
import java.util.Map;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.infore.dataAudit.dto.Project;
import com.infore.dataAudit.entity.TDataAudit;
import com.infore.dataAudit.util.ResultEntity;
import com.infore.dataAudit.vo.AuditRecordQuery;
import com.infore.dataAudit.vo.CustomerDataAuditVO;
import com.infore.dataAudit.vo.StatisAuditDateVO;
import com.infore.dataAudit.vo.DataAuditBO;
import com.infore.dataAudit.vo.DataAuditVO;
import com.infore.dataAudit.vo.QualityParamOutSelectBo;

/**
 * 数据审核服务 人工审核 审核数据查询
 * @author cys
 *
 */
public interface IDataAuditService {
    
    
    /**
     * 查询审核时间时间内的某站点
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param startTime yyyy-MM-dd 时间格式 eg. 2019-04-18
     * @param endTime yyyy-MM-dd 时间格式 eg. 2019-04-18
     * @param mn
     * @return
     * @date 2019年4月18日上午9:15:46
     */
    ResultEntity queryAuditDataByTimeAndMn(String startTime, String endTime, String mn);
    
    /**
     * 查询审核数据 是否有效
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @return
     * @date 2019年6月3日上午11:41:40
     */
    ResultEntity queryAuditDataByTimeAndMns(QualityParamOutSelectBo bo);
    
    /**
     * 存储审核数据 系统审核之后调用
     * 更新数据 人工审核调用 不一定使用
     * @author 蔡永顺
     * @return ResultEntity
     * @param list
     * @return
     * @date 2019年4月18日上午10:54:59
     */
    ResultEntity saveTDataAudit(List<TDataAudit> list);
    
    /**
     * 人工审核 标记数据 无效于有效
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param vo
     * @param appCode 
     * @return
     * @date 2019年4月18日下午7:19:33
     */
    ResultEntity auditCustomer( DataAuditVO vo, String appCode);
    
    
    /** 查询审核日志**/
    ResultEntity queryDataAuditRecordPage(AuditRecordQuery query);
    
    /**
     * 自动完成一级人工审核 定时完成的
     * 
     * @author 蔡永顺
     * @return List<TDataAudit>
     * @param flowId
     * @return
     * @date 2019年4月24日上午11:24:07
     */
    List<TDataAudit> autoCompleteOneAudit(Map<String, Object> params);
    
    /**
     * 
     * 自动完成二级人工审核 定时完成的
     * @author 蔡永顺
     * @return List<TDataAudit>
     * @param params
     * @return
     * @date 2019年4月24日上午11:24:54
     */
    List<TDataAudit> autoCompleteTwoAudit(Map<String, Object> params);
    
    /**
     * 上传无效佐证文件
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param file
     * @param dataId 
     * @param userId 
     * @return
     * @date 2019年5月6日下午1:42:35
     */
    ResultEntity saveEvidenceFile(MultipartFile file, String userId, String dataId);
    
    /**
     * 统计站点某时间段内审核情况 当天审核与未审核
     * 日历
     * @author 蔡永顺
     * @return ResultEntity
     * @param mn 监测站mn
     * @param startTime 开始时间 eg：2019-03-01
     * @param endTime 结束时间 yyyy-mm-dd
     * @return
     * @date 2019年5月6日下午6:58:28
     */
    ResultEntity statisDataAudit(List<StatisAuditDateVO> list);
    
    /**
     * 多站点 月份统计 审核未审核
     *  已审未审(驻站)
     * @author 蔡永顺
     * @return ResultEntity
     * @param query
     * @return
     * @date 2019年5月10日下午2:25:08
     */
    ResultEntity statisDataAudit(AuditRecordQuery query);
   
    /**
     * 提交审核 审核完成任务
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param vo
     * @param appCode 
     * @return
     * @date 2019年5月7日下午2:11:15
     */
    ResultEntity auditCustomerTask(CustomerDataAuditVO vo, String appCode);
    
    /**
     * 查询操作记录
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param flowId
     * @return
     * @date 2019年5月7日下午5:01:18
     */
    ResultEntity queryAuditOperaRecordByFlow(String flowId);
    
    /**
     * 存疑无效数据统计
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param query
     * @param status 1 2 3 审核数据状态
     * @return
     * @date 2019年5月9日下午3:31:49
     */
    ResultEntity queryDataAuditDetailStatisPage(AuditRecordQuery query, String status);
    
    /**
     * 驳回到指定级别
     * 三级审核方可驳回
     * @author 蔡永顺
     * @return ResultEntity
     * @param flowId
     * @param userId
     * @param reviewPass 1 2 
     * @param comment 备注
     * @return
     * @date 2019年5月17日下午3:15:45
     */
    ResultEntity rejectDataAudit(String mn, String date, String userId, Integer reviewPass, String comment);
    
    /**
     * 查询佐证文件 根据流程实例id
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param flowId
     * @return
     * @date 2019年5月21日下午3:09:24
     */
    ResultEntity queryEvidenceFile(String flowId);

    List<Project> projectInfoAllAudit(String mn);
    
    /**
     * 图形审核 数据
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param startTime
     * @param endTime
     * @param mn
     * @return
     * @date 2019年12月24日下午2:31:22
     */
    ResultEntity queryEchartsAuditDataByTimeAndMn(String startTime, String endTime, String mn);

   

    
    
}
